package com.atguigu.lease.common.exception;

import com.atguigu.lease.common.result.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * Description:
 * 全局异常处理器
 * @author Yanxinhao on 2024/11/18
 */
//@RestControllerAdvice是@ControllerAdvice和@ResponseBody的结合体，用于全局异常处理
//@ResponseBody的作用是，因为我们捕获到异常，要返回Result对象，并且以Json格式返回到前端，所以要加这个注释
@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(LeaseException.class)
    public Result error(LeaseException e){
        e.printStackTrace();
        return Result.fail(e.getCode(),e.getMessage());
    }

    //若捕获到异常，返回给前端错误信息
    @ExceptionHandler(Exception.class)
    public Result error(Exception e){
        return Result.fail();
    }
}